package com.xu.modules.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 文章
 * </p>
 *
 * @author xu
 * @since 2022-07-26
 */
@Getter
@Setter
@TableName("article")
public class ArticleEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 文章ID
     */
    @TableId(value = "article_id", type = IdType.AUTO)
    private Long articleId;

    /**
     * 文章类型
     */
    private Integer articleType;

    /**
     * 是否置顶
     */
    private Boolean isTop;

    /**
     * 文章标题
     */
    @TableField("title")
    private String title;

    /**
     * 文章简介
     */
    @TableField("brief")
    private String brief;

    /**
     * 主图路径
     */
    @TableField("article_img_url")
    private String articleImgUrl;

    /**
     * 主要内容
     */
    @TableField("content_html")
    private String contentHtml;

    /**
     * 观看次数
     */
    @TableField("view_num")
    private Integer viewNum;

    /**
     * 评论次数
     */
    @TableField("comment_num")
    private Integer commentNum;

    /**
     * 点赞次数
     */
    @TableField("good_num")
    private Integer goodNum;

    /**
     * 上一章文章ID
     */
    @TableField("pre_article_id")
    private Long preArticleId;

    /**
     * 上一章文章标题
     */
    @TableField("pre_article_title")
    private String preArticleTitle;

    /**
     * 下一章文章ID
     */
    @TableField("next_article_id")
    private Long nextArticleId;

    /**
     * 下一章文章标题
     */
    @TableField("next_article_title")
    private String nextArticleTitle;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}
